package com.veyou.async.callback;

import com.veyou.async.worker.WorkResult;

/**
 * 每个执行单元执行完毕后，会回调该接口
 * *需要监听执行结果的，实现该接口即可
 *
 * @author wang chang
 * @ClassName ICallback
 * @Description
 * @CreateTime 2024年01月24日 16:42
 * @Version 1.0.0
 */
@FunctionalInterface
public interface ICallback<T, V> {


    /**
     * 任务开始的监听
     */
    default void begin() {

    }


    /**
     * 耗时操作执行完毕后，就给value注入值
     *
     * @param success
     * @param param
     * @param workResult
     */
    void result(boolean success, T param, WorkResult<V> workResult);
}
